package com.cicigodd.brick.plug.system.dict.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cicigodd.brick.plug.common.response.PageResult;
import com.cicigodd.brick.plug.system.dict.api.SysDictValueServiceApi;
import com.cicigodd.brick.plug.system.dict.entity.SysDictValue;
import com.cicigodd.brick.plug.system.dict.request.*;
import com.cicigodd.brick.plug.system.dict.response.SysDictValueDetailResponse;
import com.cicigodd.brick.plug.system.dict.response.SysDictValueListResponse;

import java.util.List;

/**
 * 系统字典
 *
 * @author cicigodd
 * @date 2022/12/12 13:27:02
 */
public interface SysDictValueService extends IService<SysDictValue>, SysDictValueServiceApi {

    /**
     * 添加
     */
    void add(SysDictValueAddRequest sysDictValueAddRequest);

    /**
     * 删除
     */
    void delete(SysDictValueDeleteRequest sysDictValueDeleteRequest);

    /**
     * 编辑
     */
    void edit(SysDictValueEditRequest sysDictValueEditRequest);

    /**
     * 详情
     */
    SysDictValueDetailResponse detail(SysDictValueDetailRequest sysDictValueDetailRequest);

    /**
     * 分页列表
     */
    PageResult<SysDictValueListResponse> list(SysDictValueListRequest sysDictValueListRequest);

    /**
     * 根据字典类型和字典值查询
     * @param dictType
     * @param value
     * @return
     */
    SysDictValueDetailResponse detailByTypeAndValue(String dictType, String value);
    /**
     * 根据字典类型和编码查询
     * @param dictType
     * @param dictCode
     * @return
     */
    SysDictValueDetailResponse detailByTypeAndCode(String dictType, String dictCode);
    /**
     * 根据字典类型
     *
     * @param
     * @return
     */
    List<SysDictValueDetailResponse> detailByType(String dictType);
}